﻿using Castle.MicroKernel.SubSystems.Conversion;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SportsPlatform.Dto.SportBusiness.CompetitionRuleInfo
{
    /// <summary>
    /// 
    /// </summary>
    public class CompetitionRuleInfoDetailsDto
    {
        /// <summary>
        /// 
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 规则名称
        /// </summary>
        public string Name { get; set; }
        
        /// <summary>
        /// 所属项目ID
        /// </summary>
        public List<Guid> ProjectIds { get; set; }

        /// <summary>
        /// 所属项目
        /// </summary>
        public string Project { get; set; }
        /// <summary>
        /// 规则类型
        /// </summary>
        public int Type { get; set; }
        /// <summary>
        /// 规则内容
        /// </summary>
        public string Content { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        public int State { get; set; }
        /// <summary>
        /// 决赛成绩计算规则
        /// </summary>
        public int FinalRule { get; set; }
        /// <summary>
        /// 决赛圈数
        /// </summary>
        public int FinalCircle { get; set; }
        /// <summary>
        /// 预赛成绩最优场数
        /// </summary>
        public int BestFiled { get; set; }
        /// <summary>
        /// 预赛场数计算规则
        /// </summary>
        public int PreliminaryRule { get; set; }
        /// <summary>
        /// 漏标规则
        /// </summary>
        public int LeakageRule { get; set; }
        /// <summary>
        /// 漏标规则1漏标数量
        /// </summary>
        public int OneLeakageNum { get; set; }
        /// <summary>
        /// 漏标规则1扣圈
        /// </summary>
        public int OneLeakageCircle { get; set; }
        /// <summary>
        /// 标规则2漏标数量
        /// </summary>
        public int TwoLeakageNum { get; set; }
        /// <summary>
        /// 漏标规则2惩罚类型
        /// </summary>
        public int TwoLeakageType { get; set; }
        /// <summary>
        /// 漏标规则2扣圈数量
        /// </summary>
        public int TwoLeakageCircle { get; set; }
        /// <summary>
        /// 漏标规则2加时
        /// </summary>
        public int TwoLeakageAddTime { get; set; }
        /// <summary>
        /// 漏标规则2此后漏标数量
        /// </summary>
        public int TwoLeakageThenNum { get; set; }

        /// <summary>
        /// 漏标规则2此后漏标惩罚类型 0：圈，1：秒
        /// </summary>
        public int TwoLeakageAddType { get; set; }
        /// <summary>
        /// 漏标规则2此后漏标数量扣圈/加时
        /// </summary>
        public int TwoLeakageThenCircle { get; set; }
        /// <summary>
        /// 黄牌数量
        /// </summary>
        public int YellowCardNum { get; set; }
        /// <summary>
        /// 黄牌数量扣圈数
        /// </summary>
        public int YellowCardCircle { get; set; }
        /// <summary>
        /// 黄牌得红牌的数量
        /// </summary>
        public int YellowCardTurnRedCardNum { get; set; }
        /// <summary>
        /// 黄牌得红牌得数量
        /// </summary>
        public int TrunRedCardNum { get; set; }
        /// <summary>
        /// 红牌数量成绩无效
        /// </summary>
        public int RedCardNum { get; set; }

        /// <summary>
        /// 预赛进决赛，取前几名参赛人员进入决赛
        /// </summary>
        public int FinalPeopleNum { get; set; }

        /// <summary>
        /// 预赛进决赛，扣除分钟数。单位分钟
        /// </summary>
        public int FinalDeductTime { get; set; }

        /// <summary>
        /// 单次过点最低时间
        /// </summary>
        public int SingleMinTime { get; set; }

        /// <summary>
        /// 第一次过点是否需要增加圈数,/是/小于单次过点最低时间不加圈，大于单次过点最低时间加圈
        /// </summary>
        public bool IsFirstCircled { get; set; }
    }
}
